package wecom

// Message 企业微信消息接口
type Message interface {
	Type() string
}

// TextMessage 文本消息
type TextMessage struct {
	MsgType string `json:"msgtype"`
	Text    struct {
		Content string `json:"content"`
	} `json:"text"`
}

func NewTextMessage(content string) *TextMessage {
	msg := &TextMessage{MsgType: "text"}
	msg.Text.Content = content
	return msg
}

// Type 实现 Message 接口
func (m *TextMessage) Type() string {
	return m.MsgType
}

// MarkdownMessage Markdown消息
type MarkdownMessage struct {
	MsgType  string `json:"msgtype"`
	Markdown struct {
		Content string `json:"content"`
	} `json:"markdown"`
}

func NewMarkdownMessage(content string) *MarkdownMessage {
	msg := &MarkdownMessage{MsgType: "markdown"}
	msg.Markdown.Content = content
	return msg
}
